package org.nnxy.foodboot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.nnxy.foodboot.entity.UserRating;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户评分服务接口
 */
public interface UserRatingService extends IService<UserRating> {
    
    /**
     * 添加或更新评分
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @param rating 评分
     * @param comment 评论内容
     * @return 是否成功
     */
    boolean addOrUpdateRating(Long userId, Long recipeId, Integer rating, String comment);
    
    /**
     * 删除评分
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @return 是否成功
     */
    boolean deleteRating(Long userId, Long recipeId);
    
    /**
     * 获取食谱平均评分
     * @param recipeId 食谱ID
     * @return 平均评分
     */
    BigDecimal getAverageRating(Long recipeId);
    
    /**
     * 获取用户对食谱的评分
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @return 用户评分
     */
    UserRating getUserRating(Long userId, Long recipeId);
    
    /**
     * 获取食谱的所有评价
     * @param recipeId 食谱ID
     * @return 评价列表
     */
    List<UserRating> getRecipeRatings(Long recipeId);
} 